package cn.edu.hncj.mapper;

import cn.edu.hncj.entity.Account;
import cn.edu.hncj.entity.Book;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

/**
 * @author Mr.ma
 * @since 2022/11/14 15:47
 **/
public interface BookShopDao {
    /**
     * 根据图书编号获取图书信息
     * @param isbn
     * @return
     */
    @Select("select book_name bookName,price from book where isbn=#{isbn}")
    Book findBookByIsbn(String isbn);

    /**
     * 根据图书编号获取图书库存
     * @param isbn
     * @return
     */
    @Select("select stock from book_stock where isbn=#{isbn}")
    int findBookStockByIsbn(String isbn);

    /**
     * 根据isbn修改图书库存，减一
     * @param isbn
     * @return
     */
    @Update("update book_stock set stock=stock-1 where isbn=#{isbn}")
    int updateStockByIsbn(String isbn);

    /**
     * 根据用户名获取账号信息
     * @param username
     * @return
     */
    @Select("select username,balance from account where username=#{username}")
    Account findAccountByUsername(String username);

    /**
     * 根据用户名和售价修改账户余额
     * @param username
     * @param money
     * @return
     */
    @Update("update account set balance=balance-#{money} where username=#{username}")
    int updateBalanceByUsername(@Param("username") String username, @Param("money") Integer money);
}
